package java_learn.java_jinjie.FunctionalInterface.Predicate;

import java.util.function.Predicate;

/**
 * java.util.function.Predicate<T>接口
 * 作用:对某种数据类型的数据进行判断,结果返回一个boolean值
 * <p>
 * Predicate接口中包含一个抽象方法：
 * boolean test(T t):用来对指定数据类型数据进行判断的方法
 * 结果:
 * 符合条件,返回true
 * 不符合条件,返回false
 *
 * @Author: 李浩然
 * @Date: 2021/5/11 10:14 上午
 */
public class Demo01Predict {
    /**
     * 定义一个方法
     * 参数传递一个String类型的字符串
     * 传递一个Predicate接口,泛型使用String
     * 使用Predicate中的方法test对字符串进行判断,并把判断的结果返回
     */
    public static boolean checkString(String s, Predicate<String> pre) {
        return pre.test(s);
    }

    public static void main(String[] args) {
        //定义一个字符串
        String s = "abcde";

        //调用checkString方法对字符串进行校验,参数传递字符串和Lambda表达式
        boolean res = checkString(s, (s1) -> {
            if (s.length() == 5) return true;
            return false;
        });
        System.out.println(res);
    }
}
